package com.blog.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.blog.dao.BlogMapper;
import com.blog.pojo.Blog;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Lang;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * Copyright (C), 2022
 * Author: 苏大大
 * Date: 2022-04-21 16:46
 * FileName: BlogService
 * Description: 博客业务层
 */

public interface BlogService {

    /***
     * 搜索/分类-查询
     * @param type_id
     * @param title
     * @return
     */
    List<Blog>  queryByTypeAll(Integer type_id, String title);

    /***
     * 分类/搜索-分页
     * @param pageNumber
     * @param pageSize
     * @param type_id
     * @param title
     * @return
     */
    PageInfo<Blog> queryByTypePageAll(int pageNumber, int pageSize,Integer type_id, String title);

    /***
     * 标签查询
     * @param tag_id
     * @return
     */
    List<Blog> queryByTagAll(Integer tag_id);

    /***
     * 标签-分页
     * @param pageNumber
     * @param pageSize
     * @param tag_id
     * @return
     */
    PageInfo<Blog> queryByTagPageAll(int pageNumber, int pageSize,int tag_id);

    /***
     * 查询首页推荐博客
     * @return
     */
    List<Blog> queryRecommendBlog();

    /***
     * 根据博客id查询博客信息
     * @param blogId
     * @return
     */
    Blog queryByIdBlog(Long blogId);

    /***
     * 根据用户Id查询发布的博客
     * @param uid
     * @return
     */
    List<Blog> queryByuIdBlog(Long uid);

    /***
     * 根据博客Id修改博客信息
     * @param blog
     * @return
     */
    int UpdateBlog(Blog blog);


    /***
     * 根据用户Id查询发布的博客--博客
     * @param pageNumber
     * @param pageSize
     * @param uid
     * @return
     */
    PageInfo<Blog> queryPageByuIdBlog(int pageNumber, int pageSize,Long uid,String title);


    /***
     * 发布博客
     * @param blog
     * @return
     */
    boolean PublishBlog(Blog blog);

    /***
     * 根据博客Id删除博客
     * @param blogId
     * @return
     */
    boolean DelBlogById(Long blogId);
}
